SpringMVC视图解析中的 forward: 与 redirect: 前缀

在 SpringMVC 中,可以指定画面的跳转方式。使用 forward: 前缀实现请求转发跳转,使用 redirect: 前缀实现重定向跳转。有前缀的转发和重定向操作和配置的视图解析器没有关系,视图解析器不会进行拼串。

请求转发前缀—forward:

使用请求转发跳转方式,url 地址不会改变,一次请求一次相应,跳转到的地址可以获得 request 中的数据。

    /**
     * 请求转发
     */
    @RequestMapping("/hello")
    public String hello(HttpServletRequest request){
        // 跳转到的地址能获得 name 中的值
        request.setAttribute("name", "jack");
        // 当前项目下的 hello.jsp 页面,请区别配置视图解析器的返回值,这里不会进行拼串
        return "forward:/hello.jsp";
    }

重定向前缀—redirect:

使用重定向跳转方式,url 地址会改变,两次请求两次相应,跳转到的地址不可以获得 request 中的数据(因为是两次请求)。

    /**
     * 重定向
     */
    @RequestMapping("/hello")
    public String hello(HttpServletRequest request){
        // 跳转到的地址无法获得 name 中的值
        request.setAttribute("name", "jack");
        // 不需要添加当前的项目名,SpringMVC会自动的添加项目名
        return "redirect:/hello.jsp";
    }

由于重定向方式无法传递参数,解决方法请参考 RedirectAttributes 这一章节。

posted @ 2020-04-25 20:03  柠檬可乐小布丁  阅读(1138)  评论(0编辑  收藏  举报